package com.kehutong.wxapi.request;

import org.coraframework.json.annotation.JSONField;

import java.util.List;

/**
 * 通讯录批量搜索
 * @author: liukunlong
 * @date: 2021-03-08 19:05
 */
public class ContactBatchSearchRequest {
    /**
     * 应用提供商的provider_access_token，获取方法参见服务商的凭证
     */
    private String providerAccessToken;
    /**
     * 查询的企业corpid
     */ /**
     * auth_corpid : wwxxxxxx
     * agentid : 1000046
     * query_request_list : [{"query_word":"zhangsan","query_type":1,"offset":0,"limit":50,"full_match_field":1}]
     */

    @JSONField(name = "auth_corpid")
    private String authCorpid;
    /**
     * 应用id，若非0则只返回应用可见范围内的用户或者部门信息
     */
    @JSONField(name = "agentid")
    private Integer agentid;
    /**
     * 搜索请求列表,每次搜索列表数量不超过50
     */
    @JSONField(name = "query_request_list")
    private List<QueryRequestListDTO> queryRequestList;


    public String getProviderAccessToken() {
        return providerAccessToken;
    }

    public void setProviderAccessToken(String providerAccessToken) {
        this.providerAccessToken = providerAccessToken;
    }

    public String getAuthCorpid() {
        return authCorpid;
    }

    public void setAuthCorpid(String authCorpid) {
        this.authCorpid = authCorpid;
    }

    public Integer getAgentid() {
        return agentid;
    }

    public void setAgentid(Integer agentid) {
        this.agentid = agentid;
    }

    public List<QueryRequestListDTO> getQueryRequestList() {
        return queryRequestList;
    }

    public void setQueryRequestList(List<QueryRequestListDTO> queryRequestList) {
        this.queryRequestList = queryRequestList;
    }

    public static class QueryRequestListDTO {
        /**
         * 搜索关键词。当查询用户时应为用户名称、名称拼音或者英文名；当查询部门时应为部门名称或者部门名称拼音
         */ /**
         * query_word : zhangsan
         * query_type : 1
         * offset : 0
         * limit : 50
         * full_match_field : 1
         */

        @JSONField(name = "query_word")
        private String queryWord;
        /**
         * 查询类型 1：查询用户，返回用户userid列表 2：查询部门，返回部门id列表。 不填该字段或者填0代表同时查询部门跟用户
         */
        @JSONField(name = "query_type")
        private Integer queryType;
        /**
         * 查询的偏移量，每次调用的offset在上一次offset基础上加上limit
         */
        @JSONField(name = "offset")
        private Integer offset;
        /**
         * 查询返回的最大数量，默认为50，最多为200，查询返回的数量可能小于limit指定的值
         */
        @JSONField(name = "limit")
        private Integer limit;
        /**
         * 如果需要精确匹配用户名称或者部门名称或者英文名，不填则默认为模糊匹配；1：匹配用户名称或者部门名称 2：匹配用户英文名
         */
        @JSONField(name = "full_match_field")
        private Integer fullMatchField;

        public String getQueryWord() {
            return queryWord;
        }

        public void setQueryWord(String queryWord) {
            this.queryWord = queryWord;
        }

        public Integer getQueryType() {
            return queryType;
        }

        public void setQueryType(Integer queryType) {
            this.queryType = queryType;
        }

        public Integer getOffset() {
            return offset;
        }

        public void setOffset(Integer offset) {
            this.offset = offset;
        }

        public Integer getLimit() {
            return limit;
        }

        public void setLimit(Integer limit) {
            this.limit = limit;
        }

        public Integer getFullMatchField() {
            return fullMatchField;
        }

        public void setFullMatchField(Integer fullMatchField) {
            this.fullMatchField = fullMatchField;
        }
    }
}
